package modelo.entidad;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.CascadeType;

@Entity
@Table(name="anuncio",schema="public")
@PrimaryKeyJoinColumn(name="id")
public class Anuncio implements Serializable  {


	@Id    
	@SequenceGenerator(name="SeqId", sequenceName="public.anuncio_id_seq", allocationSize=1)	
	@GeneratedValue(generator="SeqId")
	private int id;
	
	@Column(name="precio")
	private double precio;
	 
	@Column(name="fechapublicacion")
	private Date fechapublicacion;
	 
	@Column(name="nrodiaspublicacion")
	private int nrodias;
	
	@Column(name="estatus")
	private String estatus;
	

	@ManyToOne
    @JoinColumn(name="id_usuario")
	private Usuario usuario;


	@OneToOne(cascade=CascadeType.ALL)
	@PrimaryKeyJoinColumn
    private Pago pago;
	
	@OneToOne(cascade=CascadeType.ALL)
    @PrimaryKeyJoinColumn
	private Inmueble inmueble;

		
	public Anuncio() {
		super();
	}

	public Anuncio(double precio, Date fechapublicacion,int nrodias,String estatus) {
		this.precio=precio;
		this.fechapublicacion= fechapublicacion;
		this.nrodias = nrodias;
		this.estatus = estatus;
	}

	public Anuncio(int id, double precio, Date fechapublicacion,int nrodias,String estatus) {
		this.precio=precio;
		this.fechapublicacion= fechapublicacion;
		this.nrodias = nrodias;
		this.estatus = estatus;
		this.id =id;
	}

	
	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public double getPrecio() {
		return precio;
	}


	public void setPrecio(double precio) {
		this.precio = precio;
	}


	public Date getFechapublicacion() {
		return fechapublicacion;
	}


	public void setFechapublicacion(Date fechapublicacion) {
		this.fechapublicacion = fechapublicacion;
	}


	public int getNrodias() {
		return nrodias;
	}


	public void setNrodias(int nrodias) {
		this.nrodias = nrodias;
	}

	 public Pago getPago() {
			return pago;
		}

		public void setPago(Pago pago) {
			this.pago = pago;
		}

		public Inmueble getInmueble() {
			return inmueble;
		}

		public void setInmueble(Inmueble inmueble) {
			this.inmueble = inmueble;
		}


		public String getEstatus() {
			return estatus;
		}

		public void setEstatus(String estatus) {
			this.estatus = estatus;
		}

		public Usuario getUsuario() {
			return usuario;
		}

		public void setUsuario(Usuario usuario) {
			this.usuario = usuario;
		}

}